/**
 * 
 */
package co.com.travelsoft.ati.administrador.interfaz;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.table.AbstractTableModel;

/**
 * @author ELIAS
 *
 */
public class ConsultaEventoPanel extends JPanel {

	private JLabel paisLabel;
	private JComboBox paisComboBox;
	private JLabel ciudadLabel;
	private JComboBox ciudadComboBox;
	private JLabel fechaInicioLabel;
	private JTextField fechaInicioTextField;
	private JLabel fechaFinLabel;
	private JTextField fechaFinTextField;
	
	private JButton consultarButton;
	private JButton crearButton;
	
	private JTable listaEventosTable;
	
	private JButton modificarButton;
	private JButton eliminarButton;
	
	private JFrame ventanaPrincipal;
	
	public ConsultaEventoPanel ( JFrame ventanaPrincipal )
	{
		this();
		this.ventanaPrincipal = ventanaPrincipal;
	}
	
	public ConsultaEventoPanel ()
	{
		super();
		
		paisLabel = new JLabel("Pais");
		paisComboBox = new JComboBox(new String[]{"Argentina", "Brazil", "Colombia", "Ecuador", "Peru", "Venezuela"});
		ciudadLabel = new JLabel("Ciudad");
		ciudadComboBox = new JComboBox(new String[]{"Buenos Aires", "Brasilia", "Bogota", "Quito", "Lima", "Caracas"});
		
		
		fechaInicioLabel = new JLabel("Fecha Inicio");
		fechaInicioTextField = new JTextField(16);
		
		fechaFinLabel = new JLabel("Fecha Fin");
		fechaFinTextField = new JTextField(16);
		JPanel parametrosConsultaPanel = new JPanel();
		parametrosConsultaPanel.setLayout(new GridLayout(2, 4,5, 5));
		parametrosConsultaPanel.add(paisLabel);
		parametrosConsultaPanel.add(paisComboBox);
		parametrosConsultaPanel.add(ciudadLabel);
		parametrosConsultaPanel.add(ciudadComboBox);
		parametrosConsultaPanel.add(fechaInicioLabel);
		parametrosConsultaPanel.add(fechaInicioTextField);
		parametrosConsultaPanel.add(fechaFinLabel);
		parametrosConsultaPanel.add(fechaFinTextField);
		//parametrosConsultaPanel.setSize(300, 200);
		
		
		
		consultarButton = new JButton("Consultar");
		crearButton = new JButton("Crear");
		JPanel botonesConsultaPanel = new JPanel();
		botonesConsultaPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
		botonesConsultaPanel.add(consultarButton);
		botonesConsultaPanel.add(crearButton);
		
		JPanel parametrosBotonesConsultaPanel = new JPanel();
		parametrosBotonesConsultaPanel.setLayout(new BorderLayout(5, 5));
		parametrosBotonesConsultaPanel.add(parametrosConsultaPanel, BorderLayout.CENTER);
		parametrosBotonesConsultaPanel.add(botonesConsultaPanel, BorderLayout.SOUTH);
		parametrosBotonesConsultaPanel.setBorder(new TitledBorder("Consulta de eventos"));
		
		
		//Tabla
		String[] nombresColumnas = {"Seleccionar",
                "Codigo",
                "Tipo Evento",
                "Pais",
                "Ciudad",
                "Nombre"};
		Object[][] datos = {
				{true, 1, "Deportivo", "Colombia", "Bogota", "Copa Mundial 2014"},
				{false, 1, "Cultural", "Argentina", "Buenos Aires", "Obra Teatro TocToc"}
			    
		};
		
		//listaEventosTable = new JTable(datos, nombresColumnas);
		listaEventosTable = new JTable(new ConsultaEventoPanel.ModeloTablaEventos( nombresColumnas, datos));
		listaEventosTable.setFillsViewportHeight(true);
		JScrollPane scrollPane = new JScrollPane(listaEventosTable);
		
		
		modificarButton = new JButton("Modificar");
		eliminarButton = new JButton("Eliminar");
		JPanel modificacionEventosPanel = new JPanel();
		modificacionEventosPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
		modificacionEventosPanel.add(modificarButton);
		modificacionEventosPanel.add(eliminarButton);
		
		
		setLayout(new BorderLayout(5,5));
		add(listaEventosTable.getTableHeader(), BorderLayout.PAGE_START);
		add(parametrosBotonesConsultaPanel, BorderLayout.NORTH);
		add(scrollPane, BorderLayout.CENTER);
		add(modificacionEventosPanel, BorderLayout.SOUTH);
		
		
		//setSize(300, 200);
		//setVisible(true);
		
	}
	
	class ModeloTablaEventos extends AbstractTableModel {
		
		private String[] nombresColumnas;
		private Object[][] datos;
		
		public ModeloTablaEventos(String[] nombresColumnas, Object[][] datos){
			this.nombresColumnas = nombresColumnas;
			this.datos = datos;
		}
		
	    public String getColumnName(int col) {
	        return nombresColumnas[col].toString();
	    }
	    
	    public int getRowCount() { 
	    	return datos.length; 
	    }
	    
	    public int getColumnCount() { 
	    	return nombresColumnas.length; 
	    }
	    
	    public Class getColumnClass(int c) {
	        return getValueAt(0, c).getClass();
	    }
	    
	    public Object getValueAt(int row, int col) {
	        return datos[row][col];
	    }
	    public boolean isCellEditable(int row, int col){ 
	    	return false;
	    }
	    public void setValueAt(Object value, int row, int col) {
	        datos[row][col] = value;
	        fireTableCellUpdated(row, col);
	    }
	}
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		try {
	        UIManager.setLookAndFeel(
	            UIManager.getSystemLookAndFeelClassName());
	    } catch (Exception e) { }

		
		
		JFrame frame = new JFrame("Consulta Eventos");
		frame.setLayout(new BorderLayout(5,5));
		frame.add(new ConsultaEventoPanel());
		frame.setPreferredSize(new Dimension(450, 300));
		frame.pack();
		frame.setVisible(true);
		
		
	}

}
